package main

import "fmt"

// iota比较特殊，可以被认为是一个可被编译器修改的常量，它默认开始值是0，每调用一次加1。遇到const关键字时被重置为0
func main() {
	const (
		a1 = iota
		a2 = iota
		a3 = iota
	)

	const a4 = iota // 看到const,意味着iota置0
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
	fmt.Printf("a4: %v\n", a4)

	// 使用 _ 跳过某些值
	const (
		a5 = iota
		_
		a6 = iota
	)
	fmt.Printf("a5: %v\n", a5)
	fmt.Printf("a6: %v\n", a6)

	// iota声明中间插队
	const (
		a7 = iota
		a8 = 100
		a9 = iota
	)
	fmt.Printf("a7: %v\n", a7)
	fmt.Printf("a9: %v\n", a9)
}
